
package com.huaweicloud.saaslanding.install.repository;

import com.huaweicloud.saaslanding.dao.common.entity.upgrade.ComponentRelationship;
import com.huaweicloud.saaslanding.dao.common.repository.app.AppComponentBaseMapper;
import com.huaweicloud.saaslanding.install.dto.CceDto;
import com.huaweicloud.saaslanding.install.dto.ComponentDto;
import com.huaweicloud.saaslanding.install.dto.CseDto;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 功能描述
 *
 * @since 2022-03-28
 */
@Repository
public interface ComponentInfoMapper extends AppComponentBaseMapper {
    Long findComponentIdByName(@Param("appId") Long appId, @Param("name") String name);

    Long findComponentId(@Param("appId") Long appId, @Param("label") String label);

    /**
     * 获取CCE资源部署所需信息
     *
     * @param appId 应用模板表id
     * @return List<CceDto>
     */
    List<CceDto> getCceDto(@Param("appId") Long appId);

    /**
     * 获取CSE资源部署所需信息
     *
     * @param appId 应用模板表id
     * @return List<CseDto>
     */
    List<CseDto> getCseDto(@Param("appId") Long appId);

    List<ComponentDto> selectComponentDtoByAppId(@Param("appId") Long appId);

    /**
     * 查找升级相关的组件（授权、订单和商品）
     */
    List<Long> findComponentIdByLabel();

    /**
     * 批量存储组件上下游关系
     */
    void batchSaveComponentRelationship(List<ComponentRelationship> relationships);
}
